import os
from pathlib import Path


def rename_remove_last_underscore_part(file_path):
    file_path = Path(file_path)

    if not file_path.exists():
        print(f"文件不存在: {file_path}")
        return

    if file_path.suffix.lower() != '.jpg':
        print(f"文件不是 .jpg 格式: {file_path}")
        return

    # 分离文件名和后缀
    stem = file_path.stem  # 不包含后缀的部分
    suffix = file_path.suffix  # .jpg

    # 按 '_' 分割
    parts = stem.split('_')

    # 如果少于两部分，无法删除最后一个下划线部分
    if len(parts) < 2:
        print(f"文件名格式太短，无法处理: {file_path}")
        return

    # 删除最后一个部分
    new_stem = '_'.join(parts[:-1])

    # 构造新文件名
    new_filename = new_stem + suffix
    new_path = file_path.with_name(new_filename)

    # 重命名
    try:
        file_path.rename(new_path)
        print(f"已重命名: {file_path.name} -> {new_path.name}")
    except Exception as e:
        print(f"重命名失败 {file_path}: {e}")


# 使用示例
if __name__ == "__main__":
    # 批量处理某个目录下的所有 .jpg 文件
    folder = Path(r"D:\TestPic\公司未戴头盔软件测试\20250916测试\33模型-v8m-重命名")
    for jpg_file in folder.glob("*.jpg"):
        rename_remove_last_underscore_part(jpg_file)